Подключение метода /api/v1/auth/refresh на API-Шлюзе
Маршрутизация HTTP-запроса ротации, вызов gRPC-клиента Auth и трансляция новой пары токенов.
NoteКраткая карточка задачи
- Репозиторий / Компонент:
backend-api(API Gateway / Шлюз). - Категория: Подключение метода к шлюзу.
- Контракт взаимодействия: Внешний
POST /api/v1/auth/refresh-> Внутренний gRPCAuthService.VerifyAndRotate. - Статус: Готово к реализации
- Инструкция по шагам:
- На Шаге 1-2 (Входной REST-эндпоинт): Зарегистрировать внешний HTTP-маршрут
POST /api/v1/auth/refresh. Настроить DTO валидацию входящего телаTokenRefreshRequestDTOдля проверки обязательного строкового поляrefresh_token. При пустом значении отдаватьHTTP 400 Bad Request. - На Шаге 3 (Вызов gRPC): Пересобрать запрос в Protobuf-структуру
RefreshRequest. Вызвать внутренний gRPC-методVerifyAndRotateвauth-service, пробрасывая сквознойX-Request-IDдля трассировки. - Обработка бизнес-статусов: Перехватывать gRPC-ошибки бэкенда. Если
auth-serviceвозвращаетUNAUTHENTICATED(токен отозван, просрочен или заблокирован в Redis), транслировать клиенту статусHTTP 401 Unauthorized. При ошибке Fail-Close от блэклиста отдаватьHTTP 503 Service Unavailable. - Финальный ответ (Шаг 9): При получении успешного ответа
RotateResponseс новой парой токенов, сформировать JSON-ответ со статусом200 OK, содержащийstatus: "success", новые параметрыtoken,refresh_tokenиexpires_in: 3600.
- На Шаге 1-2 (Входной REST-эндпоинт): Зарегистрировать внешний HTTP-маршрут